﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BE.Model;

namespace DAL
{
    public interface IDAL
    {
        // Cities
        IEnumerable<City> GetAllCities();
        bool AddCity(City city);
        bool RemoveCity(int id);
        bool UpdateCity(City city);

        // Professions
        IEnumerable<Profession> GetAllProfessions();
        bool AddProfession(Profession profession);
        bool RemoveProfession(int id);
        bool UpdateProfession(Profession profession);

        // Programs
        IEnumerable<Program> GetAllPrograms();
        bool AddProgram(Program program);
        bool RemoveProgram(int id);
        bool UpdateProgram(Program program);

        // Dorms
        IEnumerable<Dorm> GetAllDorms();
        bool AddDorm(Dorm dorm);
        bool RemoveDorm(int id);
        bool UpdateDorm(Dorm dorm);

        // Rooms
        IEnumerable<Room> GetAllRooms();
        bool AddRoom(Room room);
        bool RemoveRoom(int id);
        bool UpdateRoom(Room room);

        // Charges
        IEnumerable<Charge> GetAllCharges();
        bool AddCharge(Charge charge);
        bool RemoveCharge(int id);
        bool UpdateCharge(Charge charge);

        // Students
        IEnumerable<Student> GetAllStudents();
        bool AddStudent(Student student);
        bool RemoveStudent(int id);
        bool UpdateStudent(Student student);

        // Placements
        IEnumerable<Placement> GetAllPlacements();
        bool AddPlacement(Placement placement);
        bool RemovePlacement(int id);
        bool UpdatePlacement(Placement placement);

        // Users
        IEnumerable<User> GetAllUsers();
        bool AddUser(User user);
        bool RemoveUser(int id);
        bool UpdateUser(User user);
        User GetUserByID(int id);
        User GetUserByEmail(string email);
    }
}
